Test of `rotating' package

Sebastian Rahtz and Leonor Barroca

November 19th 1994

`Rotating' provides a generalised rotation environment, where the text will be rotated (anti-clockwise) by the number of degrees specified as a parameter to the environment, but no special arrangement is made to find space for the result.
\begin{example}
Start here
\begin{rotate}{-56}
Save whales
\end{rotate}End here
\end{example}

A complete example of rotating text without leaving space would the `Save the whale' text written at 10 degree intervals round the compass. We use `rlap' to ensure that all the texts are printed at the same point. Just to show that TEX can handle PostScript muckings-about properly...
\begin{example}
\newcount\wang\newsavebox{\wangtext}
\newdimen\wangspace\sa...
...le{1cm}{0pt}Save the whale\end{rotate}}\advance\wang by 10\repeat}
\end{example}

If the user desires LATEX to leave space for the rotated box, then `turn' is used:
\begin{example}
Start here \begin{turn}{56}%
Save the whale
\end{turn} end here
\end{example}
The environment `Sideways' is a special case, setting the rotation to -90, and leaving the correct space for the rotated box.
\begin{example}
Start here
\begin{sideways}%
Save the whale
\end{sideways}End here
\end{example}

If you deal with whole paragraphs of text, you realize that TEX boxes are not as simple as they sometimes look: they have a height and a depth. So when you rotate, you rotate about the point on the left-hand edge of the box that meets the baseline. The results can be unexpected, as shown in the full set of paragraph rotations in Figures [*] and [*]. If you really want to turn a paragraph so that it appears to rotate about the real bottom of the TEX box, you have to adjust the box in the normal LATEX way:
\begin{example}\newsavebox{\foo}\savebox{\foo}{\parbox{1in}{Save
the whale...
...ave the whale}}%
Start
\begin{turn}{45}\usebox{\foo}\end{turn}End
\end{example}

\begin{example}\savebox{\foo}{\parbox[b]{1in}{Save
the whales Save the whale ...
...ave the whale}}%
Start
\begin{turn}{45}\usebox{\foo}\end{turn}End
\end{example}

Figure: Rotation of paragraphs between 0 and -320 degrees
\begin{figure*}\begin{tabular}{\vert c\vert c\vert c\vert}
\hline\savebox{\foo...
...\mathrm{o}}$}& -320{\small$^{\mathrm{o}}$}\\
\hline
\end{tabular}
\end{figure*}

Figure: Rotation of paragraphs between 0 and 320 degrees
\begin{figure*}\begin{tabular}{\vert c\vert c\vert c\vert}
\hline\savebox{\foo...
...{\mathrm{o}}$}& 320{\small$^{\mathrm{o}}$}\\
\hline
\end{tabular}
\end{figure*}

We can set tabular material in this way; at the same time, we demonstrate that the rotation can be nested:
\begin{example}
\begin{sideways}
\rule{1in}{0pt}
\begin{tabular}{\vert lr\vert}
...
...ne
hello & 33\\
goodbye & 34\\
\hline
\end{tabular}\end{sideways}\end{example}


\begin{example}
\begin{quote}
\rule{0pt}{1.5in}\begin{tabular}{rrr}
\begin{rotat...
...ne
1& 2& 3\\
4& 5& 6\\
7& 8& 9\\
\hline
\end{tabular}\end{quote}\end{example}


\begin{example}
\begin{quote}
\begin{tabular}{rrr}
\begin{turn}{45}Column 1\end{...
...ne
1& 2& 3\\
4& 5& 6\\
7& 8& 9\\
\hline
\end{tabular}\end{quote}\end{example}


\begin{example}
\begin{quote}
\rule{0pt}{1.5in}\begin{tabular}{rrr}
\begin{rotat...
...ne
1& 2& 3\\
4& 5& 6\\
7& 8& 9\\
\hline
\end{tabular}\end{quote}\end{example}


\begin{example}
\begin{sideways}
\begin{tabular}{\vert l\vert c\vert c\vert c\ve...
...t}
&SANTON&8&7&0.0&7.3&ACCEPT\\
\hline
\end{tabular}\end{sideways}\end{example}

If you are interested in setting rotated material in tables or figures, this presents no problem. Figure [*] shows how PostScript files which are being incorporated using `epsfig' can be rotated at will, while Figure [*] shows, in contrast, how `epsfig' itself handles rotation. It is also possible to rotate the whole of the figure environment, including caption, by using the `sidewaysfigure' ands `sidewaystable' environments in place of `figure' and `table'.

Sideways figures and tables always take up the whole page. They can be rotated so that the bottom ot the figures is on the left or the right; the default is to always turn to the right. If the `twoside' option has been given to the main document class, this package then starts rotating sideways figures according to the page number (this requires two passes through LATEX at least). If you want the `twoside' option, but want the figures always in one direction, use the `figuresright' or `riguresleft' options to `rotating'.

The code used to produce figures [*][*] is as follows:

Figure [*]
\begin{sidewaystable}
\centering
\caption{This is a narrow  table, which should be centred vertically
on the final page.\label{rotfloat1}}
  \begin{tabular}{|ll|}
\hline
    a & b \\
    c & d \\
    e & f \\
    g & h \\
    i & j \\
\hline
  \end{tabular}
\end{sidewaystable}

Figure [*]
\begin{sidewaystable}
\centering
\begin{tabular}{|llllllllp{1in}lp{1in}|}
\hline
Context   &Length   &Breadth/   &Depth   &Profile   &Pottery   &Flint   &Animal   &Stone   &Other    &C14 Dates \\
  &         &Diameter   &        &          &          &        & 
Bones&&&\\
\hline
&&&&&&&&&&\\
\multicolumn{10}{|l}{\bf Grooved Ware}&\\
784       &---        &0.9m       &0.18m   &Sloping U &P1       &$\times$46  &  $\times$8      &&       $\times$2 bone&  2150$\pm$ 100 BC\\
785       &---        &1.00m      &0.12    &Sloping U &P2--4    &$\times$23  &  $\times$21     & Hammerstone &---&---\\
962       &---        &1.37m      &0.20m   &Sloping U &P5--6    &$\times$48  &  $\times$57*    & ---&     ---&1990 $\pm$ 80 BC (Layer 4) 1870 $\pm$90 BC (Layer 1)\\
983       &0.83m      &0.73m      &0.25m   &Stepped U &---      &$\times$18  &  $\times$8      & ---& Fired clay&---\\
&&&&&&&&&&\\
\multicolumn{10}{|l}{\bf Beaker}&\\
552       &---        &0.68m      &0.12m   &Saucer    &P7--14   &---           & ---       & ---       &---        &---\\
790       &---        &0.60m      &0.25m   &U         &P15      &$\times$12    & ---       & Quartzite-lump&---    &---\\
794       &2.89m      &0.75m      &0.25m   &Irreg.    &P16      &$\times$3     & ---       & ---       &---        &---\\
\hline
\end{tabular}
 
\caption[Grooved Ware and Beaker Features, their Finds and
Radiocarbon Dates]{Grooved Ware and Beaker Features, their
Finds and Radiocarbon Dates; For a breakdown of the Pottery
Assemblages see Tables I and III; for
the Flints see Tables II and IV; for the
Animal Bones see Table V.}\label{rotfloat2}
\end{sidewaystable}

Figure [*]
\begin{table}
\centering
\rotcaption{Minimum number of individuals; effect of rotating table
and caption separately}\label{rotfloat3}%
\begin{sideways}
\begin{tabular}[b]{cccccccccp{1cm}}
\hline
Phase&Total&Cattle&Sheep&Pig&Red Deer&Horse&Dog&Goat&Other\\
\hline
&1121&54&12&32&1&1&1&1&1 polecat\\
3&8255&58&6&35&1&1&1&1&1 roe deer, 1 hare, 1 cat, 1 otter\\
4&543&45&6&45&4&1&1&---&---\\
\hline
&9919&157&24&112&6&3&3&2&5\\
\hline
\end{tabular}
\end{sideways}
\end{table}

Figure [*]
\begin{sidewaysfigure}
  \centerline{\epsfig{figure=cat.eps,width=.8\textheight,height=.4\textwidth}}
\caption{A pathetically squashed rotated pussycat}\label{rotfloat4}
\end{sidewaysfigure}

Figure: A normal, and sideways, pictures within a figure
\begin{figure}\begin{example}
---\begin{turn}{156}
\epsfig{figure=cat.eps,width=...
...egin{example}
---\epsfig{figure=cat.eps,width=1in}---
\end{example}
\end{figure}

Figure: Figures rotated with `epsfig'
\begin{figure}\begin{example}
\epsfig{figure=cat.eps,width=1in,%
angle=-56}
\end{example}\par\end{figure}

\begin{sidewaystable}
% latex2html id marker 238\centering
\caption{This is a ...
... d \\
e & f \\
g & h \\
i & j \\
\hline
\end{tabular}\end{sidewaystable}


\begin{sidewaystable}
% latex2html id marker 244\centering
\begin{tabular}{\ve...
...nts see Tables II and IV; for the
Animal Bones see Table V.}
\end{sidewaystable}


Minimum number of individuals; effect of rotating table and caption separately
\begin{sideways}
\begin{tabular}[t]{cccccccccp{1cm}}
\hline
Phase&Total&Cattle&S...
...-&---\\
\hline
&9919&157&24&112&6&3&3&2&5\\
\hline
\end{tabular}\end{sideways}


\begin{sidewaysfigure}
% latex2html id marker 267\centerline{\epsfig{figure=c...
...th}}
\caption{A pathetically squashed rotated pussycat (1)}
\end{sidewaysfigure}


\begin{sidewaysfigure}
% latex2html id marker 271\centerline{\epsfig{figure=c...
...th}}
\caption{A pathetically squashed rotated pussycat (2)}
\end{sidewaysfigure}


\begin{sidewaysfigure}
% latex2html id marker 275\centerline{\epsfig{figure=c...
...th}}
\caption{A pathetically squashed rotated pussycat (3)}
\end{sidewaysfigure}


\begin{sidewaysfigure}
% latex2html id marker 279\centerline{\epsfig{figure=c...
...th}}
\caption{A pathetically squashed rotated pussycat (4)}
\end{sidewaysfigure}


\begin{sidewaysfigure}
% latex2html id marker 283\centerline{\epsfig{figure=c...
...twidth}}
\caption{A pathetically squashed rotated pussycat}
\end{sidewaysfigure}